The communications industry is rapidly changing to adjust to emerging technologies and ever increasing customer demand. This customer demand for new applications and increased performance of existing applications is driving communications network and system providers to employ networks and systems having greater speed and capacity (e.g., greater bandwidth). In trying to achieve these goals, a common approach taken by many communications providers is to use packet switching technology. Increasingly, public and private communications networks are being built and expanded supporting various packet technologies, such as Asynchronous Transfer Mode (ATM) and Internet Protocol (IP).
A network device, such as a switch or router, typically receives, processes, and forwards or discards a packet based on one or more criteria, including the type of protocol used by the packet, addresses of the packet (e.g., source, destination, group), and type or quality of service requested. Additionally, one or more security operations are typically performed on each packet. But before these operations can be performed, typically a packet classification operation must be performed on the packet to determine how to manipulate the received packet.
Packet classification as required for, inter alia, access control lists (ACLs) and forwarding decisions, is a demanding part of switch and router design. The packet classification of a received packet is increasingly becoming more difficult due to ever increasing packet rates and number of packet classifications. For example, ACLs require matching packets on a subset of fields of the packet flow label, with the semantics of a sequential search through the ACL rules. IP forwarding requires a longest prefix match.
Known approaches of packet classification use custom application-specific integrated circuits (ASICs), custom circuitry, software or firmware controlled processors, binary content-addressable memories (CAMs) and ternary content-addressable memories (TCAMs). The use of programmable software or firmware have advantages as they provide some level of flexibility, which becomes especially important as new protocols and services are added to existing network. Customer typically desire to use their existing hardware (e.g., routers, switches etc.) to support these new protocols and services. However, known software and firmware implementations are relatively slow, and typically place a performance bound which may be incompatible with new requirements. CAMS and TCAMs are increasingly being used in packet classification especially because of their performance, but known systems incorporating CAMs and TCAM are not flexible enough to support new protocols and applications, especially because their inputs are typically designed to provide only the needed data inputs for handling known protocols and applications. Needed are new methods and systems which are fast and adaptable to new protocols and applications.